Difference between Hashtable and Dictionary
Difference between Hashtable and Dictionary
179
13-Jun-2024
Updated on 13-Jun-2024
Ashutosh Kumar Verma
13-Jun-2024Dictionary vs Hashtable in C#
In C#, Hashtable and Dictionary are used to store key-value pairs, but they have some differences in terms of functionality, implementation and features,
Dictionary
There are several points in Dictionary that make it different from Hashtable which are as follows,
Namespace- Dictionary is present in the
System.Collections.Generic
namespace.Type Safety- The
Dictionary
is type-safe, you must specify the data type for both the keys and the values when you declare it.Performance-
Dictionary
usually provides better performance thanHashtable
since it is a generic collection and avoids boxing/unboxing overheadNull Keys- the
Dictionary
does not allow the null key but allows null values.Enumeration- Enumerating over a
dictionary
with foreach is more efficient than enumerating over ahashtable
.Enumeration Order-
Dictionary
does not guarantee the order of the elements whileHashtable
also does not preserve the order of the elements.Obsolete- The
dictionary
is a newer and preferred alternative to key-value pairs in most cases.Example-
Output-
Hashtable
There are also some points in Hashtable that differ from Dictionary which are as follow,
Namespace- Dictionary is present in the
System.Collections
namespace.Type Safety- The
Hashtable
is not type-safe, because it allows any datatype for both key and value.Performance-
Hashtable
uses a simple hash code algorithm that's why its performance is not as good as DictionaryNull Keys- The
Hashtable
allows both the null key and null valueEnumeration- Hashtable needs boxing/unboxing, which can degrade performance during calculation.
Enumeration Order- The
Hashtable
doesn't preserve the order of the elements.Obsolete- The Hashtable is a part of an older non-generic collection framework in C#
Example-
Output-
Also, Read: Pascal Triangle